#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2025-02-01-22:26
# @Author  :
# @File    : validate.py
# @Software: PyCharm

# 导入ultralytics的YOLO库
from ultralytics import YOLO

'''
two
验证模型（Validation）
验证模型是在独立的【验证数据集】上测试模型的性能，以评估其泛化能力。这有助于检测模型是否过拟合或欠拟合，并调整模型参数
'''

# 加载模型
model = YOLO('ultralytics/gui/main/best.pt')  # 加载自定义的训练模型

if __name__ == '__main__':
    # 对模型进行验证
    metrics = model.val(
        data='ultralytics/datasets/original-license-plates.yaml',
        project='runs/val',  # 输出路径
    )  # 调用val方法进行模型验证，不需要传入参数，数据集和设置已被模型记住

    # 输出不同的性能指标
    print("AP (mAP@0.5:0.95):", metrics.box.map)  # 输出平均精度均值（AP，Average Precision）在IoU阈值从0.5到0.95的范围内的结果
    print("AP@0.5 (mAP@0.5):", metrics.box.map50)  # 输出在IoU=0.5时的平均精度（AP50）
    print("AP@0.75 (mAP@0.75):", metrics.box.map75)  # 输出在IoU=0.75时的平均精度（AP75）
    print("APs per category (mAP@0.5:0.95 per category):", metrics.box.maps)  # 输出每个类别在IoU阈值从0.5到0.95的平均精度的列表

